Predictive methods and systems for sampling data read from a rotating storage medium

ABSTRACT

A frequency adjustment system comprises an offset estimation module and a frequency adjustment module. The offset estimation module estimates a distance between data written to a rotating storage medium and a first center location about which the rotating storage medium rotates, the data having been previously written to the rotating storage medium relative to a second center location that is different than the first center location. The frequency adjustment module adjusts a sampling frequency at which the data is read from the rotating storage medium based on the distance between the data and the first center location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional App. No. 61/016,684 filed on Dec. 26, 2007 and U.S. Provisional App. No. 61/019,053 filed Jan. 4, 2008. The disclosures of the above applications are incorporated herein by reference in their entirety.

FIELD

The present disclosure relates to rotating storage mediums and more particularly to sampling data read from rotating storage mediums.

BACKGROUND

The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.

Host devices such as computers, laptops, personal video recorders (PVRs), MP3 players, game consoles, servers, set-top boxes, digital cameras, and/or other electronic devices often need to store a large amount of data. Storage devices such as hard disk drives and/or other rotating storage devices may be used to meet these storage requirements.

Data is written on a rotating storage medium of a device in concentric circles that are referred to as tracks. Before performing a read or a write operation, a head locks onto a track by referring to positioning information called servo data. The servo data is generally prewritten on rotating storage medium. The servo data provides the positioning information so the head can be positioned at the location at which the read or write operation will occur.

The frequency at which data read from the track is sampled is set based on a radial distance of the track from a center location, an angular velocity of the rotating storage medium, and a linear density of the data of the track. Sampling the data read from the track at an appropriate frequency optimizes the quality of data recovered from the rotating storage medium.

SUMMARY

A frequency adjustment system comprises an offset estimation module and a frequency adjustment module. The offset estimation module estimates a distance between data written to a rotating storage medium and a first center location about which the rotating storage medium rotates, the data having been previously written to the rotating storage medium relative to a second center location that is different than the first center location. The frequency adjustment module adjusts a sampling frequency at which the data is read from the rotating storage medium based on the distance between the data and the first center location.

A system comprises the frequency adjustment system, the rotating storage medium and a read/write channel module. The read/write channel module samples the data based on the sampling frequency.

Further areas of applicability of the present disclosure will become apparent from the detailed description, the claims and the drawings. It should be understood that the detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure.

BRIEF DESCRIPTION OF DRAWINGS

The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein:

FIG. 1 is a functional block diagram of a hard disk drive (HDD) system;

FIG. 2 is a platter of a hard disk drive assembly (HDDA);

FIG. 3 is a platter having an offset;

FIG. 4 is a functional block diagram of an exemplary implementation of a read/write channel system;

FIG. 5 is an exemplary illustration of normalized frequency offset as a function of wedge index value;

FIG. 6 is an exemplary illustration of normalized frequency offset as a function of normalized offset angle;

FIG. 7 is a flowchart depicting exemplary steps performed by a frequency adjustment system; and

FIG. 8 is a functional block diagram of a DVD drive.

DESCRIPTION

The following description is merely exemplary in nature and is in no way intended to limit the disclosure, its disclosure, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical or. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure.

As used herein, the term module may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.

The present disclosure relates to rotating storage mediums. Although the present disclosure will be discussed relative to a platter of a hard disk drive, the present disclosure is also applicable to other rotating storage mediums, such as optical storage mediums.

Data is written to a rotating storage medium as the medium rotates relative to a first center location. In some situations, the rotating storage medium may be rotated about a second center location that is offset from the first center location. A frequency adjustment system according to the present disclosure adjusts a sampling frequency for data read from the rotating storage medium based on a distance between the second center location and the read data.

Referring now to FIG. 1, a functional block diagram of an exemplary hard disk drive (HDD) system 10 is presented. The HDD system 10 includes a HDD printed circuit board (HDD PCB) 12 and a HDD assembly (HDDA) 13. The HDDA 13 includes one or more platters 14 that are each coated with a magnetic medium 15. The magnetic medium 15 stores positive and negative magnetic fields that represent data.

A spindle motor, shown schematically at 16, rotates the platters 14. Generally, the spindle motor 16 controls the platters 14 based on a predetermined operating speed (e.g., angular velocity) when data is being written to or read from the platters 14. For example only, the predetermined operating speed may be set to 3600, 7200, or 15000 revolutions per minute (rpm), although other speeds may be used. One or more read/write arms 18 move relative to the platters 14 to write data to or read data from the platters 14.

A read/write device 20 is located near a distal end of the read/write arm 18. The read/write device 20 includes a write element such as an inductor that generates a magnetic field. The read/write device 20 also includes a read element (such as a magneto-resistive (MR) head) that senses the magnetic field on the platters 14 and generates an analog read signal accordingly.

A preamplifier module 22 amplifies the analog read/write signals. More specifically, when reading data, the preamplifier module 22 amplifies the analog read signal from the read element and outputs the amplified signal to a read/write (R/W) channel module 24. When writing data, a write current is generated which flows through the write element of the read/write device 20. The write current is switched to produce a magnetic field having a positive or negative polarity. The positive or negative polarity is stored by the platters 14 and is used to represent data.

The HDD PCB 12 typically includes a buffer 32 that stores data that is associated with the control of the HDD system 10 and/or buffers data to allow data to be collected and transmitted as larger data blocks to improve efficiency. The buffer 32 may employ, for example, dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate (DDR), and/or any other type of memory having low latency. A processor 34 performs processing related to the operation of the HDDA 13 and various components of the HDD PCB 12.

The HDD PCB 12 further includes a hard disk control (HDC) module 36 that communicates with a host device 46 via an input/output (I/O) interface 38. The I/O interface 38 may be any suitable type of interface. For example only, the I/O interface 38 may be a serial or parallel interface, such as an Integrated Drive Electronics (IDE), Advanced Technology Attachment (ATA), or serial ATA (SATA) interface. The I/O interface 38 communicates with an I/O interface 48 that is associated with the host device 46.

The HDC module 36 also communicates with a spindle/voice coil motor (VCM) driver or module 40 and/or the read/write channel module 24. The spindle/VCM driver 40 controls the spindle motor 16 and, therefore, rotation of the platters 14. The spindle/VCM driver 40 also controls actuation of the read/write arm 18 and, therefore, position of the read/write arm 18 and the read/write device 20. For example only, the spindle/VCM driver 40 may control a voice coil actuator, a stepper motor, and/or any other suitable actuator 50 that controls the read/write arm 18. A power supply 42 supplies power for the HDD PCB 12 and/or the HDDA 13.

FIG. 2 is an exemplary illustration of one of the platters of the HDDA 13. Data is typically written to the platter 14 in concentric circles that are referred to as tracks, such as track 202. Specifically, the tracks are written to the platter 14 rotationally relative to a center location 204 (hereafter referred to as first center location 204). The platter 14 includes a predetermined number of servo wedges 206-1, 206-2, . . . , 206-N (hereafter referred to as servo wedges 206). Although only the two servo wedges 206-1 and 206-2 are shown, the platter 14 may include any suitable number of the servo wedges 206.

Before reading data from or writing data to the platter 14, a head locks onto the track 202 by referring to positioning information called servo data. The servo data provides the positioning information so the head can be precisely positioned at a given location (e.g., track and sector) at which the read or write operation will occur. The servo wedges 206 and the servo data are prewritten to the platter 14. More specifically, the servo data is prewritten to each of the servo wedges 206. The servo data of each of the servo wedges 206 may include, for example, a servo sync mark (SSM) field, track/sector identification (ID) field, position error sync (PES) field, and/or any other suitable data or field.

A specified component of the servo data of each of the servo wedges 206 is used as an indicator for that servo wedge. For example only, marks 208-1, 208-2, . . . , and 208-N (hereafter referred to as marks 208) correspond to the specified component of the servo data of the servo wedges 206-1, 206-2, . . . , and 206-N, respectively. The marks 208 may correspond to any suitable component of the servo data, such as the SSMs of the associated servo wedges 206.

The frequency at which data is read from the track 202 (i.e., sampled) is determined based on a distance (e.g., a radial distance) of the track 202 from the first center location 204, the angular velocity of the platter 14, and the linear density of the data of the track 202. For example only, the sampling frequency may be determined based on the equation: f=2*π*r*S*D,  (1) where f is the sampling frequency (e.g., bits/sec), r is the radial distance between the track 202 and the first center location 204 (e.g., in), S is the angular velocity of the platter 14 (e.g., revolutions/sec), and D is the linear density of the data (e.g., bits/in). This frequency (i.e., f) is referred to as a nominal frequency. Sampling data read from the platter 14 at the nominal frequency generally ensures that the data is read at the same quality (e.g., 24-bit) that data was written.

FIG. 3 is an exemplary illustration of a circumstance when the platter 14 is offset from the first center location 204 is shown. The platter 14 is offset from the first center location 204 and rotates about a second center location 302. For example only, offset may occur when the platter 14 is used in a device other than the device that recorded data onto the track 202. Offset may also occur when a device containing the platter 14 is bumped, dropped, or otherwise jarred.

An exemplary offset track 304 corresponds to the track 202 if the track 202 was written rotationally relative to the second center location 302. An offset distance (i.e., Δ) corresponds to the distance between the first and second center locations 204 and 302.

An offset angle (i.e., θ) corresponds to the angle between a first line 306 from the first center location 204 to the data of the track 202 and a second line 308 between the first and second center locations 204 and 302. The offset angle may be measured in any suitable manner, such as counter-clockwise from the second line 308 to the first line 306. Sampling the data at the nominal frequency when the platter 14 is rotating relative to the second center location 302 generally causes the data to be read from the track 302 at a lower quality than the quality at which the data was written.

FIG. 4 is a functional block diagram of exemplary implementation of a read/write system 400. A read element (such as a magneto-resistive (MR) head) of the read/write device 20 senses magnetic fields on the platter 14 and generates an analog read signal accordingly. In one implementation, the read element generates the analog read signal based on data read from the platter 14. The preamplifier module 22 amplifies the analog read signal and outputs an amplified read signal to the read/write channel module 24.

The read/write channel module 24 includes analog filters 408, an analog-to-digital converter (ADC) module 410, a clock 412, digital filters 414, and digital detectors 416. The read/write channel module 24 also includes a mark detection module 418 and a timer module 420. Further, the read/write channel module 24 includes an offset estimation module 424, and a frequency adjustment module 426.

The analog filters 408 filter the amplified read signal provided by the preamplifier module 22 and provide the filtered read signal to the ADC module 410. The ADC module 410 samples the filtered read signal at a sampling frequency set by the clock 412. For example only, the clock 412 may provide pulses to the ADC module 410 corresponding to the sampling frequency. While not shown, when writing data, the read/write channel module 24 also writes the data to the platter 14 based on the frequency set by the clock 412.

The digital filters 414 filter the samples provided by the ADC module 410 and provide the filtered samples to the digital detectors 416. The digital detectors 416 process the filtered samples into a data bit sequence. For example only, the digital detectors 416 may process the filtered samples into data bit sequence of binary ones and zeros. The digital detectors 416 output the data bit sequence to a controller, which may then output the data bit sequence to the host device 46, the buffer 32, the processor 34, and/or other suitable module or device.

The clock 412 sets the sampling frequency based on a period of time between predetermined marks or fields of servo data included on the platter 14. For example only, the clock 412 sets the sampling frequency based on the period of time between the marks 208. The mark detection module 418 generates a mark indicator when one of the marks 208 is read by the read element of the read/write device 20. In one implementation, the marks are detected based on an output the digital detectors 416. In another implementation, the marks are detected based on an output of the digital filters 414.

The timer module 420 receives the mark indicators and resets a timer value after each mark indicator is generated. For example only, the timer module 420 resets the timer value to a predetermined reset value, such as zero. The timer value is incremented as time passes. In this manner, the timer value corresponds to the period of time between two of the marks 208.

The clock 412 sets the sampling frequency for data read from the platter 14 based on the period of time between the marks 208. For example only, the clock 412 may decrease the sampling frequency when the period of time between two of the marks 208 increases. The clock 412 may also adjust the sampling frequency based on an output of the ADC 410, the digital filters 414, and/or the digital detectors 416.

A frequency adjustment system 422 according to the present disclosure estimates a distance between the second center location 302 and the data and adjusts the sampling frequency for the data based on that distance. More specifically, the frequency adjustment system 422 predicts a frequency offset based on the distance and adjusts the sampling frequency based on the frequency offset. In this manner, the frequency adjustment system 422 adjusts the sampling frequency for data read from the platter 14 to account for the offset.

The offset estimation module 424 reads the timer value when each mark indicator is generated and estimates the distance between the second center location 302 and the data based on the timer value. More specifically, the offset estimation module 424 may estimate the offset distance (i.e., Δ) and the offset angle (i.e., θ) based on the timer value when each mark indicator is generated. For example only, the offset estimation module 424 may estimate the offset distance and the offset angle based on the equation: c ² =a ² +b ²−2*a*b*cos(θ),  (2) where c is the length of a hypotenuse of a triangle, a and b are lengths of first and second sides of the triangle, and θ is the angle between the first and second sides of the triangle. From equation (2), the distance between the second center location 302 and the data may be determined using the equation: {tilde over (r)} ² =r ²+Δ²−2*r*Δ*cos(θ),  (3) where {tilde over (r)} is the distance between the second center location 302 and the data, r is the distance between the first center location 204 and the data, Δ is the distance between the first and second center locations 204 and 302 (i.e., the offset distance), and θ is the offset angle.

Taking the square root of equation (3), the distance between the second center location 302 and the data, the offset distance, and/or offset angle may also be determined using the equation: {tilde over (r)}=√{square root over (r ²+Δ²−2*r*Δ*cos(θ))}.  (4) To simplify the estimation of the offset angle and/or the offset distance, a wedge index value may be assigned to each of the servo wedges 206.

The offset estimation module 424 may estimate the offset angle based on a current wedge index value (i.e., k), the total number of servo wedges 206, and an initial offset angle (i.e., θ₀). The initial offset angle corresponds to the offset angle at a time zero, such as a time when the frequency adjustment system 422 is enabled. For example only, the frequency adjustment system 422 may be enabled when the HDDA 13 is powered up and/or when an event that may cause an offset is detected. Using the wedge index values, the offset angle may be expressed as:

$\begin{matrix} {{\theta = {\frac{2*\Pi*k}{N} - \theta_{0}}},} & (5) \end{matrix}$ where k is the current wedge index value (1≦k≦N), N is the total number of servo wedges 206, and θ₀ is the initial offset angle.

The offset estimation module 424 may estimate the offset distance and initial offset angle in any suitable manner. For example only, the offset estimation module 424 may store the period of time between each of the marks 208 over one or more revolutions of the platter 14. The periods may be indexed according to wedge index value. The offset estimation module 424 may then estimate the offset distance and the initial offset angle based on the stored periods, for example, using a regression analysis. In another implementation, the offset distance and/or angle for a given wedge may be estimated based on an average of a predetermined number (e.g., 100) of stored periods for that wedge.

In other implementations, the offset estimation module 424 may adaptively estimate the offset distance and the initial offset angle. For example only, the offset estimation module 424 may apply a least mean squared (LMS) adaptive filter and estimate the offset distance and the initial offset angle based on the timer value and one or more previous estimates. In one implementation, the offset estimation module 424 applies a LMS analysis and estimate the distance between the second center location 302 and the data based on the timer value and at least one previous estimate of the offset distance and the initial offset angle.

The offset estimation module 424 may be aided in estimating the offset distance and/or the initial offset angle by various parameters. For example only, from equations (3) and (4), the distance between the second center location 302 and the data will be a greatest distance when the offset angle is π (i.e., 180° from the second line 308). Similarly, the distance between the second center location 302 and the data will be a shortest distance when the offset angle is 0 or 2π (i.e., 0° or 360°). The offset estimation module 424 provides the offset distance and the initial offset angle to the frequency adjustment module 426 when each mark indicator is generated.

The frequency adjustment module 426 determines a frequency offset based on the distance between the second center location 302 and the data. For example only, the frequency adjustment module 426 may predict the frequency offset based on the offset distance and the initial offset angle. The frequency adjustment module 426 adjusts the sampling frequency set by the clock 412 based on the frequency offset. In this manner, the frequency adjustment module 426 adjusts the sampling frequency to account for the offset.

For example only, the frequency adjustment module 426 may predict the frequency offset using the equation:

=2*π*{tilde over (r)}*S*D,  (6) where

is the frequency offset, {tilde over (r)} is the distance between the second center location 302 and the data, S is the angular velocity of the platter 14, and D is the linear density of the data. Based on equations (4) and (5) above, the frequency offset may also be determined using the equation:

=2*π*S*D*√{square root over (r²+Δ²−2*r*Δ*cos(θ))},  (7) where r is the distance between the data and the first center location 204, Δ is the offset distance, and θ is the offset angle. Substituting θ from equation (5) and reducing equation (7) further, the frequency offset may also be determined using the equation:

$\begin{matrix} {{\underset{f}{\bullet} = {2*\Pi*r*S*D*\sqrt{\frac{r^{2}}{r^{2}} + \frac{\Delta^{2}}{r^{2}} - {\frac{2*\Delta}{r}*{\cos\left( {\frac{2*\Pi*k}{N} - \theta_{0}} \right)}}}}},} & (8) \end{matrix}$ where k is the current wedge index value assigned to the current servo wedge, N is the total number of servo wedges 206, and θ₀ is the initial offset angle.

Assuming that

$\frac{\Delta}{r}$ is small, the

$\frac{\Delta^{2}}{r^{2}}$ term of equation (8) will be negligible, and the frequency offset may be predicted using the equation:

$\begin{matrix} {\underset{f}{\bullet} = {2*\Pi*r*S*D*{\sqrt{1 - {\frac{2*\Delta}{r}*{\cos\left( {\frac{2*\Pi*k}{N} - \theta_{0}} \right)}}}.}}} & (9) \end{matrix}$ The frequency adjustment module 426 may further reduce the frequency offset equation based on a Taylor series expansion of one or more components of equation (9). For example only, based on equation (9) and the Taylor series expression:

$\begin{matrix} {{\sqrt{1 - x} = {1 - {\frac{1}{2}x} - {\frac{1}{8}x^{2}} - {\frac{1}{16}x^{3}} - \ldots}}\mspace{14mu},} & (10) \end{matrix}$ the frequency offset may be predicted based on the equation:

$\begin{matrix} {\underset{f}{\bullet} = {2*\Pi*r*S*D*{\left\lbrack {\left( {1 - \frac{\Delta}{r}} \right)*{\cos\left( {\frac{2*\Pi*k}{N} - \theta_{0}} \right)}} \right\rbrack.}}} & (11) \end{matrix}$

The frequency adjustment module 426 may also normalize the frequency offset with respect to the nominal frequency (i.e., f). The nominal frequency corresponds to the frequency at which the data would be sampled if the platter 14 was rotating relative to the first center location 204. In other words, the nominal frequency corresponds to the frequency at which the data was written to the platter 14. For example only, the frequency adjustment module 426 may determine the normalized frequency using the equation:

$\begin{matrix} {{f_{Norm} = {\frac{\underset{f}{\bullet}}{f} \approx {\left( {1 - \frac{\Delta}{r}} \right)*{\cos\left( {\frac{2*\Pi*k}{N} - \theta_{0}} \right)}}}},} & (12) \end{matrix}$ where f_(Norm) is the normalized frequency and f is the nominal frequency (i.e., f=2*π*r*S*D). Normalizing the frequency offset simplifies the estimation of the offset distance to determining minimum and maximum values of a sine wave and estimating based on those values. Normalizing the frequency offset also simplifies the estimation of the offset angle to estimating based on the minimum and maximum values and/or angles at which the sine wave becomes zero.

The frequency adjustment module 426 adjusts the sampling frequency set by the clock 412 based on the normalized frequency. For example only, the frequency adjustment module 426 may set the sampling frequency based on a product of the normalized frequency offset and the frequency of the clock 412.

An exemplary illustration of normalized frequency offset as a function of servo wedge index value is presented in FIG. 5. Trace 502 corresponds to the normalized frequency offset when

$\frac{\Delta}{r}$ is approximately 0.001 in., the initial offset angle is 0°, and the platter 14 includes 250 servo wedges. Trace 502 is plotted based on an angular velocity of approximately 1.0 revolution per second and a linear density of approximately 1.0 bits/in.

FIG. 6 depicts an exemplary illustration of normalized frequency offset as a function of normalized offset angle for two rotating storage mediums. The normalized offset angle corresponds to the offset angle divided by 2π (i.e., one revolution). Trace 602 corresponds to normalized frequency offset for a rotating storage medium without an offset. Accordingly, the normalized frequency offset is 1.0 and the sampling frequency is unadjusted.

Trace 604 corresponds to normalized frequency offset for a rotating storage medium having an offset distance of approximately 0.001 in. The frequency adjustment system 422 adjusts the sampling frequency for data the data of this rotating storage medium based on the normalized frequency offset at each offset angle.

FIG. 7 illustrates a flowchart depicting exemplary steps performed by the frequency adjustment system 422. Control begins in step 702 where control resets the timer. In one implementation, control rests the timer value in step 702. Control may reset the timer value to a predetermined reset value, such as zero.

Control starts the timer in step 704. The timer value corresponds to the period of time that has passed since servo data of one of the servo wedges 206 has been read by the read/write device 20. In step 706, control determines whether the read/write device 20 has read servo data. If true, control continues to step 708. If false, control remains in step 706. For example only, control may continue to step 708 when the read/write device 20 reads an SSM of one of the servo wedges 206.

In step 708, control generates a mark indicator. In this manner, control generates a mark indicator each time that servo data of one of the servo wedges 206 is read by the read/write device 20. Control reads the timer value in step 710. Control estimates the offset distance and the initial offset angle in step 712.

Control predicts the frequency offset in step 714. More specifically, control predicts the frequency offset based on the offset distance and the initial offset angle. Control continues to step 716 where control adjusts the sampling frequency based on the frequency offset. Control may also normalize the frequency offset with respect to the nominal frequency before adjusting the sampling frequency. In this manner, control adjusts the sampling frequency based on the offset distance and the offset angle. Control then returns to step 702.

FIG. 8 illustrates a functional block diagram of an exemplary DVD drive 800. The principles of the present disclosure can be implemented in the DVD drive 800, a CD drive (not shown), and/or any other optical drive. For example, the principles of the present application may be implemented in a DVD control module 802 and/or in an analog front-end module 804 to adjust the sampling frequency at which data is read from an optical storage medium 806.

The DVD drive 800 includes a DVD PCB 808 and a DVD assembly (DVDA) 810. The DVD PCB 808 includes the DVD control module 802, the analog front-end module 804, a buffer 812, nonvolatile memory 814, a processor 816, a spindle/FM (feed motor) driver module 818, a write strategy module 820, and a DSP module 822.

The DVD control module 802 controls components of the DVDA 810 and communicates with an external device (not shown) via an I/O interface 824. The external device may include a computer, a multimedia device, a mobile computing device, etc. The I/O interface 824 may include wireline and/or wireless communication links.

The DVD control module 802 may receive data from the buffer 812, the nonvolatile memory 814, the processor 816, the spindle/FM driver module 818, the analog front-end module 804, the write strategy module 820, the DSP module 822, and/or the I/O interface 824. The processor 816 may process the data, including encoding, decoding, filtering, and/or formatting. The DSP module 822 performs signal processing, such as video and/or audio coding/decoding. The processed data may be output to the buffer 812, the nonvolatile memory 814, the processor 816, the spindle/FM driver module 818, the analog front-end module 804, the write strategy module 820, the DSP module 822, and/or the I/O interface 824.

The DVD control module 802 may use the buffer 812 and/or the nonvolatile memory 814 to store data related to the control and operation of the DVD drive 800. The buffer 812 may include DRAM, SDRAM, etc. The nonvolatile memory 814 may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The DVD PCB 808 includes a power supply 826 that provides power to the components of the DVD drive 800.

The DVDA 810 may include a preamplifier device 828, a laser driver 830, and an optical device 832, which may be an optical read/write (ORW) device or an optical read-only (OR) device. A spindle motor 834 rotates the optical storage medium 806, and a feed motor 836 actuates the optical device 832 relative to the optical storage medium 806.

When reading data from the optical storage medium 806, the laser driver provides a read power to the optical device 832. The optical device 832 detects data from the optical storage medium 806, and transmits the data to the preamplifier device 828. The analog front-end module 804 receives data from the preamplifier device 828 and performs such functions as filtering and A/D conversion. To write to the optical storage medium 806, the write strategy module 820 transmits power level and timing data to the laser driver 830. The laser driver 830 controls the optical device 832 to write data to the optical storage medium 806.

The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims. 

1. A frequency adjustment system for a rotating storage system, the frequency adjustment system comprising: an offset estimation module configured to estimate a distance between (i) data written to a rotating storage medium and (ii) a first center location about which the rotating storage medium rotates, wherein the data has been previously written to the rotating storage medium relative to a second center location, and wherein the second center location is different than the first center location; a frequency adjustment module configured to adjust a sampling frequency at which the data is read from the rotating storage medium based on the distance between the data and the first center location; and a mark detection module configured to generate (i) a first mark indicator when servo data is read from a first location of the rotating storage medium and (ii) a second mark indicator when the servo data is read from a second location of the rotating storage medium, wherein the offset estimation module is configured to (i) estimate the distance based on a period between the first mark indicator and the second mark indicator and (ii) estimate an offset angle for the data and an offset distance for the rotating storage medium based on the period, wherein the offset distance is defined between the first center location and the second center location, wherein the frequency adjustment module is configured to adjust the sampling frequency based on the offset angle and the offset distance, and wherein the offset estimation module is configured to estimate the offset angle and the offset distance based on at least one previous estimate of each of the offset angle and the offset distance.
 2. The frequency adjustment system of claim 1, wherein the offset angle is defined between (i) a first line from the first center location to the second center location and (ii) a second line from the second center location to the data.
 3. The frequency adjustment system of claim 2, wherein: the first location of the rotating storage medium corresponds to a first servo wedge; the second location of the rotating storage medium corresponds to a second servo wedge; and the offset estimation module is configured to estimate the offset angle based on (i) an initial offset angle, (ii) an index value assigned to one of the first servo wedge and the second servo wedge, and (iii) a total number of servo wedges of the rotating storage medium.
 4. The frequency adjustment system of claim 1, wherein the offset estimation module is configured to estimate the offset angle and the offset distance based on respective averages of a predetermined number of offset angles and offset distances.
 5. The frequency adjustment system of claim 1, wherein the offset estimation module is configured to estimate the offset angle and the offset distance based on a least mean squares estimate of a difference between the period and at least one previous period between mark indicators.
 6. The frequency adjustment system of claim 1, wherein the offset estimation module is configured to estimate at least one of the offset angle and the offset distance based on a regression estimate and a predetermined number of periods between mark indicators.
 7. The frequency adjustment system of claim 1, wherein the frequency adjustment module is configured to (i) predict a frequency offset based on the distance and (ii) adjust the sampling frequency based on the frequency offset.
 8. The frequency adjustment system of claim 7, wherein the frequency offset module is configured to normalize the frequency offset with respect to a nominal frequency at which the data was written to the rotating storage medium.
 9. A system comprising: the frequency adjustment system of claim 1; the rotating storage medium; and a read/write channel module configured to sample the data based on the sampling frequency.
 10. The system of claim 9, wherein the rotating storage medium includes one of a platter of a hard disk drive (HDD) and an optical storage medium.
 11. A frequency adjustment method for a rotating storage system, the frequency adjustment method comprising: estimating a distance between (i) data written to a rotating storage medium and (ii) a first center location about which the rotating storage medium rotates, wherein the data has been previously written to the rotating storage medium relative to a second center location, and wherein the second center location is different than the first center location; adjusting a sampling frequency at which the data is read from the rotating storage medium based on the distance between the data and the first center location; predicting a frequency offset based on the distance; adjusting the sampling frequency based on the frequency offset; and normalizing the frequency offset with respect to a nominal frequency at which the data was written to the rotating storage medium.
 12. The frequency adjustment method of claim 11, further comprising: generating a first mark indicator when servo data is read from a first location of the rotating storage medium; generating a second mark indicator when the servo data is read from a second location of the rotating storage medium; and estimating the distance based on a period between the first mark indicator and the second mark indicator.
 13. The frequency adjustment method of claim 12, further comprising estimating, based on the period, an offset angle for the data and an offset distance for the rotating storage medium, wherein the offset distance is defined between the first center location and the second center location, and wherein the offset angle is defined between (i) a first line from the first center location to the second center location and (ii) a second line from the second center location to the data, wherein the adjusting of the sampling frequency comprises adjusting the sampling frequency based on the offset angle and the offset distance.
 14. The frequency adjustment method of claim 13, wherein: the first location of the rotating storage medium corresponds to a first servo wedge; and the second location of the rotating storage medium corresponds to a second servo wedge; and the estimating the offset angle comprises estimating the offset angle based on (i) an initial offset angle, (ii) an index value assigned to one of the first and second servo wedges, and (iii) a total number of servo wedges of the rotating storage medium.
 15. The frequency adjustment method of claim 13, further comprising estimating the offset angle and the offset distance based on at least one previous estimate of the offset angle and the offset distance.
 16. A frequency adjustment system for a rotating storage system, the frequency adjustment system comprising: an offset estimation module configured to estimate a distance between (i) data written to a rotating storage medium and (ii) a first center location about which the rotating storage medium rotates, wherein the data has been previously written to the rotating storage medium relative to a second center location, and wherein the second location is different than the first center location; a frequency adjustment module configured to adjust a sampling frequency at which the data is read from the rotating storage medium based on the distance between the data and the first center location; and a mark detection module configured to generate (i) a first mark indicator when servo data is read from a first location of the rotating storage medium and (ii) a second mark indicator when the servo data is read from a second location of the rotating storage medium, wherein the offset estimation module is configured to (i) estimate the distance based on a period between the first mark indicator and the second mark indicator and (ii) estimate an offset angle for the data and an offset distance for the rotating storage medium based on the period, wherein the offset distance is defined between the first center location and the second center location, wherein the frequency adjustment module is configured to adjust the sampling frequency based on the offset angle and the offset distance, and wherein the offset estimation module is configured to estimate at least one of the offset angle and the offset distance based on one of a least mean squares estimate of a difference between the period and at least one previous period between mark indicators, and a regression estimate and a predetermined number of periods between mark indicators.
 17. A frequency adjustment system for a rotating storage system, the frequency adjustment system comprising: an offset estimation module configured to estimate a distance between (i) data written to a rotating storage medium and (ii) a first center location about which the rotating storage medium rotates, wherein the data has been previously written to the rotating storage medium relative to a second center location, and wherein the second location is different than the first center location; a frequency adjustment module configured to adjust a sampling frequency at which the data is read from the rotating storage medium based on the distance between the data and the first center location; and wherein the frequency adjustment module is configured to (i) predict a frequency offset based on the distance, (ii) adjust the sampling frequency based on the frequency offset, and (iii) normalize the frequency offset with respect to a nominal frequency at which the data was written to the rotating storage medium. 